package com.liuyanzhao.blog.service;


import com.liuyanzhao.blog.entity.Category;
import com.liuyanzhao.blog.entity.custom.ArticleListVo;
import com.liuyanzhao.blog.entity.custom.CategoryCustom;


import java.util.List;

/**
 * 
 * @author Anbing Cui
 * 对分类表的操作
 * @CrateTime: 2019年6月22日
 */
public interface CategoryService {
	/**
	 *  获得分类总数
	 * @param status
	 * @throws Exception
	 * @Return: Integer
	 * @author Anbing Cui
	 * @CreateDate: 2019年6月22日 下午4:21:06
	 */
	public Integer countCategory(Integer status) throws Exception;
	/**
	 * 
	 *  获得分类列表
	 * @param status
	 * @return
	 * @throws Exception
	 * @Return: List<CategoryCustom>
	 * @author Anbing Cui
	 * @CreateDate: 2019年6月22日 下午4:21:22
	 */
	public List<CategoryCustom> listCategory(Integer status) throws Exception;

	/**
	 * 
	 *  获得带有该分类的文章列表
	 * @param status
	 * @param pageNow
	 * @param pageSize
	 * @param cateId
	 * @throws Exception
	 * @Return: List<ArticleListVo>
	 * @author Anbing Cui
	 * @CreateDate: 2019年6月22日 下午4:21:30
	 */
	public  List<ArticleListVo> listArticleWithCategoryByPage(Integer status,Integer pageNow,Integer pageSize,Integer cateId) throws Exception;
	/**
	 * 
	 *  获得某个分类信息
	 * @param status
	 * @param id
	 * @throws Exception
	 * @Return: CategoryCustom
	 * @author Anbing Cui
	 * @CreateDate: 2019年6月22日 下午4:21:44
	 */
	public CategoryCustom getCategory(Integer status,Integer id) throws Exception;

	/**
	 * 
	 *  根据ID删除分类
	 * @param id
	 * @throws Exception
	 * @Return: void
	 * @author Anbing Cui
	 * @CreateDate: 2019年6月22日 下午4:21:56
	 */
	public void deleteCategory(Integer id) throws Exception;
	
	/**
	 * 
	 *  根据id查询分类信息
	 * @param status
	 * @param id
	 * @return
	 * @throws Exception
	 * @Return: CategoryCustom
	 * @author Anbing Cui
	 * @CreateDate: 2019年6月22日 下午4:22:19
	 */
	public CategoryCustom getCategoryById(Integer status,Integer id) throws Exception;

	/**
	 * 
	 *  添加分类
	 * @param category
	 * @throws Exception
	 * @Return: void
	 * @author Anbing Cui
	 * @CreateDate: 2019年6月22日 下午4:22:29
	 */
	public void insertCategory(Category category) throws Exception;

	/**
	 * 
	 * 更新分类
	 * @param category
	 * @throws Exception
	 * @Return: void
	 * @author Anbing Cui
	 * @CreateDate: 2019年6月22日 下午4:22:37
	 */
	public void updateCategory(Category category) throws Exception;

	/**
	 * 
	 *  根据分类名获取分类
	 * @param name  分类名
	 * @throws Exception
	 * @Return: Category
	 * @author Anbing Cui
	 * @CreateDate: 2019年6月22日 下午4:22:46
	 */
	public Category getCategoryByName(String name) throws Exception;


}
